Within corporate development/testing environments, one of the primary actions that takes place is the discovery and reporting of defects found in a system or software application under test. As defects are found, the defects are often stored in a defect-tracking database, along with various static attributes further describing the defect. When the incoming defect workload reaches a level where the capacity of the development team to work the defects starts to be exceeded, some sort of “triage” system often needs to be implemented, in order to prioritize the defects, and to ensure that the defects have the required information.
The problem with existing approaches is that the defects tend to be classified strictly based upon the associated static attributes. While knowing that a defect was written against a particular part of the product (such as a particular application bundle), or was written up while doing a certain kind of testing is useful, such an approach does not always provide as detailed a picture as is possible with the existing data. Since the classification of defects is static, there is no easy way to spot trends in the types of defects that are being written up.
Existing approaches classify and/or triage the defects using a manual process that is based on static attributes. The existing approaches involve having engineers dedicated to examining incoming defects, determining whether or not the defects have the appropriate information, and then passing the defects along to the appropriate development team. Since the existing approach is essentially manual, there is added time that is required to get a defect through a lifecycle of the defect.
The overhead of development and test leads to assigning and re-assigning defects to various developers which results in less efficiency in the overall development/test process. Also, the classification of defects is often left up to whoever is assigning the defects. Thus, the assignment of defects is dependent upon the knowledge of the individual assigner. Depending upon the experience level of the assigner, assignments may not be done efficiently (i.e., may go to a less-appropriate developer, etc.). Also, the static classification method for defects does not accurately show trends in change requests (CRs). History of defects is available, but could be made more useful. Also, engineers dedicated to triage cannot be used for other development and testing activities, thus requiring a company to spend more money on headcount to replace the engineers carrying out the triage activity.